1. Field of the Invention
This invention relates to computer system and, more particularly, to arbitrating a plurality of voltage requests in a computer system.
2. Description of the Related Art
As processors become faster and provide additional features, they tend to consume more power. Increased power consumption is undesirable for several reasons. For example, as computer use becomes more prevalent, the overall societal cost of powering all of these computers increases. On a more individual level, increased power consumption is also undesirable. In all computer applications, increased power consumption leads to increased operating costs. In battery-operated notebook computers, increased power usage decreases the life of the batteries.
Another undesirable consequence of increased power consumption is increased heat generation. As computer systems and the devices within computer systems consume more power, they generate more heat. This additional heat makes heat-related problems such as system crashes, lockups, random reboots, memory errors and damage to the internal devices more likely. In order to minimize these disadvantages and heat-related problems, computer system designers have attempted to reduce power consumption. Some computer designers have tried to reduce power consumed by individual components such as processors. However, this has led to many disparate power specifications. For example, early processors operated at the same voltage, which was typically 5 volts. Now, as processors are designed to have ever-decreasing power consumption, new processors may require different voltages than their predecessors and competitors. Additionally, newer processors may use split rail designs, requiring two different voltage levels: one for the external or I/O voltage and another for the internal or core voltage. For example, a split rail processor might require 3.3 V for its I/O voltage while requiring a lower core voltage of 2.9 V. In some systems, some components including the processor may operate at one voltage level, and other components, such as I/O components, may operate at another voltage level. Also, a manufacturer may offer different versions of a processor that operate at different voltage levels.
The various voltages that might be required by a device may be supplied by one or more power supplies. These power supplies might be voltage regulators such as linear or switching regulators. In a computer system, the motherboard may contain one or more voltage regulators. The voltage regulator may be configured to supply a certain voltage to a device. If a new device, such as a different version of a processor, that requires a different voltage is used in the motherboard, the voltage regulator must be adapted to provide the new voltage. In order to allow handling of disparate device power requirements, the motherboard may have jumpers that allow different voltages to be selected. However, jumpers present several disadvantages, the biggest of which is human error. If the person setting the jumpers has misidentified either the voltage needed or the correct jumpers to select, the wrong voltage will be generated and the device may not function properly. Additionally, jumpers may only facilitate a limited number of options. If no jumper setting can identify the necessary voltage, a new voltage regulator may be required in order to properly power the device.
As a result, some systems allow devices to request voltages from the voltage generator when the system starts up. For example, some systems use VID (voltage identification) codes instead of jumpers to select the voltages generated by the voltage regulators. At startup, the device outputs the VID code correlating to the voltage required. In this way, the device, not the user, controls what voltage it receives. This eliminates the possibility of erroneous voltage selection by the user and, as Table 1 shows, allows the identification of a large number of different voltages.
TABLE 1Voltage Identification (VID) CodesVRM Signal NameProcessor CoreVID[4]VID[3]VID[2]VID[1]VID[0]Voltage (Vcc)000001.850V000011.825V000101.800V000111.775V001001.750V001011.725V001101.700V001111.675V010001.650V010011.625V010101.600V010111.575V011001.550V011011.525V011101.500V011111.475V100001.450V100011.425V100101.400V100111.375V101001.350V101011.325V101101.300V101111.275V110001.250V110011.225V110101.200V110111.175V111001.150V111011.125V111101.100V11111Shutdown
Table 1 shows an example of 5-bit VID codes that a device might use to request a particular voltage from a power supply. Each of the 5 bits is sent as a signal to a voltage regulator module (VRM). The VRM is a voltage regulator that is programmed to accept a VID code and to output the voltage corresponding to the particular VID code received. For example, a VRM that received VID code 01011 would output a voltage of 1.575 V. Some computer systems may implement VID codes using more or less than 5 bits in order to accommodate a greater or lesser number of voltages. Additionally, different ranges of voltages might be represented using VID codes.
In computer systems that have several similar devices that perform similar functions, it is possible that some of the devices may request different voltages than others. For example, a multi-processor system may include two different processors and each processor may request a different voltage. In some systems, the devices may share a common voltage supply and consequentially, it may not be possible for each of the them to receive its requested voltage. In systems where each device has a dedicated power supply, if the devices each request different voltages from the power supplies, the power supplies will provide the devices with the different voltages requested. This creates a problem if the system configuration requires that the devices all operate at the same voltage. For example, some components that communicate with multiple processors may not be able to properly recognize signals that are input or output at different voltage levels. If the power supplies in the system supply each processor with its requested voltage, the processors may be operating at different voltage levels, causing their signals to have different voltage levels. This may cause the system to not function properly.